package com.guangyunl.f_polymorphic;
// 测试类
public class Test07 {
    public static void main(String[] args) {
        // 原始方法
        Dog dog = new Dog();
        dog.eat(); // 重写的
        dog.lookDoor(); // 特有的


        Cat cat = new Cat();
        cat.eat(); // 重写的
        cat.catchMouse(); // 特有的

        System.out.println("===========================");

        Animal animal01 = new Dog();
        animal01.eat(); // 重写的 animal接收的是dog对象，所以调用的是dog中的eat
//        animal.lookDoor();  // 多态前提下，不能直接调用子类特有成员


        Animal animal02 = new Cat();
        animal02.eat(); // 重写的 animal接收的是cat对象，所以调用的是cat中的eat
    }
}
/*
狗啃骨头
狗会看门
猫吃鱼
猫抓老鼠
===========================
狗啃骨头
猫吃鱼
 */